"""
说明：Select类是Selenium为操作select标签特殊封装的。
实例化对象：
select = Select(element)
element: <select>标签对应的元素，通过元素定位方式获取，
例如：driver.find_element_by_id("selectA")
操作方法：
1. select_by_index(index) --> 根据option索引来定位，从0开始
2. select_by_value(value) --> 根据option属性 value值来定位
3. select_by_visible_text(text) --> 根据option显示文本来定位
"""
"""
Select类实现步骤分析
1. 导包 Select类 --> from selenium.webdriver.support.select import Select
2. 实例化Select类 select = Select(driver.find_element_by_id("selectA"))
3. 调用方法：select.select_by_index(index)
"""
# 需求：使用‘注册A.html’页面，完成对城市的下拉框的操作
# 1).选择‘广州’
# 2).暂停2秒，选择‘上海’
# 3).暂停2秒，选择‘北京’
from time import sleep
from selenium import webdriver
from selenium.webdriver.support.select import Select

driver = webdriver.Chrome()
driver.get("http://121.43.169.97:8848/pageA.html")

# 放大浏览器页面
driver.maximize_window()
# --------------------- 下标/索引--------------------
'''
# 1).选择‘广州’ 
el = driver.find_element_by_css_selector("#selectA")
select = Select(el)
sleep(2)
select.select_by_index(2)
# 2).暂停2秒，选择‘上海’
sleep(2)
select.select_by_index(1)
# 3).暂停2秒，选择‘北京’
sleep(2)
select.select_by_index(0)
'''

# ------------------ value值实现 ----------------------------

'''
el = driver.find_element_by_css_selector("#selectA")
select = Select(el)
sleep(2)
# 1).选择‘广州’
select.select_by_value("gz")
# 2).暂停2秒，选择‘上海’
sleep(2)
select.select_by_value("sh")
# 3).暂停2秒，选择‘北京’
sleep(2)
select.select_by_value("bj")
'''
# --------------------------- 文本值显示内容  ------------------------------

el = driver.find_element_by_css_selector("#selectA")
select = Select(el)
sleep(2)
# 1).选择‘广州’
select.select_by_visible_text("广州")
# 2).暂停2秒，选择‘上海’
sleep(2)
select.select_by_visible_text("上海")
# 3).暂停2秒，选择‘北京’
sleep(2)
select.select_by_visible_text("北京")

sleep(2)
driver.quit()
